{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww9000\viewh8400\viewkind0
\deftab720
\pard\pardeftab720\sa260\ql\qnatural

\f0\fs24 \cf0 \
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\ql\qnatural\pardirnatural
\cf0 \
Hi again.\
\
I finally managed to spend some time with MarkLogic APIs.\
\
In the attachment you will find my MarkLogic Server Based Application, called Bicycles. It's an RSS-based ad browser, full documentation below and in docs/README.rtf \
\
At this point I would really want to know what the next steps are.\
I really got into the app and I'll probably be working on improving the app a bit further and I wonder whether you intend to schedule a meeting to review the app now.\
\
\
I. Overview\
\
1. General Overview\
\
The primary goal of the application is to find the best second hand bicycle for Lech, for the best price possible.\
The potential secondary use for the future is to prove that the classified ads website gumtree.com is indeed the best source for used bicycles by comparing prices with other sources such ebay.co.uk or pinkbike.com\
\
If you're familiar with craigslists, gumtree is the equivalent, more popular in Europe.\
\
The app loads RSS feeds from london.gumtree.com containing local ads advertising bicycles for sale.\
\
It mirrors some of the functionality already found on gumtree website but has the following advantages:\
1. User experience: it focuses on a single task of finding the right bike, instead of cluttering the interface\
2. Archival of records: on gumtree, as soon as the bike is sold, the ad is removed from the website and it is impossible to view that ad. Archiving ads has the following advantages:\
-possible to see if the seller posted earlier with a higher price\
-possible to see similar ads to get and indication of the price\
-statistical analysis against: ebay, time of the year and so on\
\
\
\
Most of the app functions can be called from UI, but it is also very easy to extend the app programatically or to simply query the database.\
The easiest and most obvious way to take the application further is to simply load RSS for a different category, effectively creating a dedicated Gumtree App for each category with no additional coding. This provides a much cleaner interface than original gumtree website, which in view of many usability experts is the major drawback of both gumtree and craigslits (see: wired.com [1,2,3]). Such functionality is similar to Google Chrome ability create standalone desktop apps google.com[4]) from a web application and in fact the two could be combined to provide the least cluttered user interface.\
\
As per assignment, the app uses search API and the RSS item records are loaded using XQuery update. Additionally, I am reusing Feed API found on workshop.marklogic.com.\
\
II. Installation\
\
1. Install MarkLogic Server:\
\
The app has been developed and tested against MarkLogic 4.1, but it should work on version 3.2 or any higher.\
Note:\
To ensure compatibility with Feed API that the application relies on, 0.9ml is the default namespace, so all other APIs need to be version adjusted for that.\
For instance,  a MarkLogic Server debugging API CQ  version 4.1 will not work because of this setting, a 3.2 version needs to be used.\
\
2. Create a new HTTP server 'Bicycles' on port 8005:\
\
Please follow the instructions and all the steps found in the "Getting Started" document from the MarkLogic developer documentation, section 2.2, "Creating a New Server", replacing "TestServer" with "Bicycles" in the server name.\
\
The "Bicycles" application uses that "Bicycles" server in conjunction with the standard 'Documents' database.\
\
3. Configure the Bicycles server to support Feed API:\
a) the most important setting is to use 0.9ml as the default namespace, otherwise any functions that depend on Feed API 1.0 won't work.\
b) for the rest of the change, please follow the guidelines found in the README.txt shipped along with Feed API. I believe most of them are speed optimisations, however I still recommend setting them all accordingly.\
c) finally, the feed API requires the date-parster module to be installed in the root directory of you MarkLogic server\
\
4. Create a directory structure and load the application files: \
a) Create a "Bicycles" folder in the root of MarkLogic Server as described in "Getting Started" document from the MarkLogic developer documentation, section 2.3.\
b) Copy the "Bicycles" application files into "Bicycles" folder. The latest version of the files can always be found at: \
http://code.google.com/p/bicycles/source/browse/\
The recommended method is to checkout the files using Mercurial. Provided that  Mercurial is installed on your system and your current directory is the root of MarkLogic server, all you have to do is issue the following command:\
\pard\pardeftab720\ql\qnatural
\cf0 hg clone https://bicycles.googlecode.com/hg/ Bicycles\
b) \
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\ql\qnatural\pardirnatural
\cf0 \
Your bicycles application is ready to be configured and used.\
\
\
III. Configuration\
\
1. Subscribing to a feed:\
\
The only mandatory configuration is choosing the URL of the RSS or ATOM feed to subscribe to.\
By default, the Gumtree bicycle channel will be loaded, but it is possible to load any other feed from gumtree and the application should work properly with no modifications.\
Before you can start using the application, you must verify and subscribe to the feed by following those steps:\
a)Navigate to http://localhost:8005/Bicycles/subscribe.xqy\
b)Verify or change the URL of the feed\
c) Click subscribe\
The feed items will be loaded into the database and the application is ready to use.\
\
2. Feed API operations:\
Since the application uses the Feed API, it is possible to invoke any command provided by the Feed API, such as unsubscribe, or drop records from the database.\
At this point in time, this is unsupported.\
\
IV. Operation\
1. Browsing through the ads:\
To browse and compare different ads, navigate to:\
http://localhost:8005/Bicycles/index.xqy\
\
V. Troubleshooting\
In case of any problems, feel free to contact Lech at tcpip.com.pl\
\
If some of the functionality isn't working properly, it's possible to use the alternative app to check the contents of the database, the application can be found in the sample-app folder as is part of the original Feed API.\
Through that application, you can clear the database (drop some or all of the records), unsubscribe from the feed etc.\
\
Appendix A: Bibliography & Links\
\
1. Wired.com: "Why Craigslist Is Such a Mess", http://www.wired.com/entertainment/theweb/magazine/17-09/ff_craigslist\
2. Wired.com: "Extreme Makeover: Craigslist Edition",  http://www.wired.com/entertainment/theweb/magazine/17-09/ff_craigslist_makeover\
3. Wired.com: "How Would You Redesign Craigslist?", http://www.wired.com/entertainment/theweb/magazine/17-09/ff_craigslist_makeover#reddit\
4.  Google.com: "Application Shortcuts", http://www.google.com/chrome/intl/en-GB/features.html, then click on "Application SHortcuts" link}